package cn.hollis.nft.turbo.base.response;

import lombok.Getter;
import lombok.Setter;
import lombok.ToString;

import java.io.Serializable;

/**
 * 通用出参
 *
 * @author Hollis
 */
@Setter
@Getter
@ToString
public class BaseResponse implements Serializable {
    private static final long serialVersionUID = 1L;

    // 如果使用isSuccess，默认生成的getter和setter方法名为getSuccess和setSuccess，不符合java bean的命名规范。带来的问题：在使用RPC框架时，当序列化的时候就会找getIsSuccess和setIsSuccess方法做反射调用，就会找不到，那么isSuccess值默认就会被丢掉。
    // 如果使用boolean，默认值是false，如果返回的最终结果是false，那么我就不知道是执行过程中失败了，还是业务的返回逻辑就是false。如果使用Boolean，默认值是null，如果执行过程中代码异常失败了，返回的是null，如果是业务逻辑返回的那就是false。
    private Boolean success; // 因此，使用 Boolean success 是最好的

    private String responseCode;

    private String responseMessage;
}
